package com.lp.article.service;

import com.lp.model.dto.article.CollectDto;
import com.lp.model.dto.article.PageDto;
import com.lp.model.entity.article.Article;
import com.lp.model.entity.article.redis.CollectsMsg;
import com.lp.model.entity.article.redis.LikesMsg;
import com.lp.model.entity.article.redis.vo.CollectsMsgVO;
import com.lp.model.entity.article.redis.vo.LikesMsgVO;
import com.lp.model.entity.article.vo.PageVO;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface ICollectService {

    /**
     * 收藏
     * @param userId 用户 id
     * @param collectDto 文章id
     */
    void collect(Long userId, CollectDto collectDto);

    /**
     * 收藏列表
     * @param page 分页数据 + 用户 id
     */
    PageVO<Article> getCollectList(PageDto page);

    /**
     * 获取收藏消息分页数据
     * @param pageDto 分页数据 + 用户 id
     */
    PageVO<CollectsMsgVO> getMsgPage(PageDto pageDto);

    /**
     * 添加收藏消息
     */
    void addMsg(CollectsMsg collectsMsg);

    /**
     * 删除全部消息
     * @param userId 用户id
     */
    void delMsgAll(Long userId);

    /**
     * 收藏消息是否已读
     * @param userId 用户id
     */
    boolean isRead(Long userId);

}
